1. Field of the Invention
The present invention is related to device identification technologies for security, general identification and protection of intellectual property (IP) in electronic systems.
2. Description of Related Art
Reliable and secure identification methods for integrated circuits are increasingly desirable, in part, to mitigate a burgeoning problem of piracy of intellectual property and related trends including unauthorized code execution. The shrinking of feature sizes of semiconductor devices by technology scaling has reached the point where process variation is becoming a limiting constraint on the fabrication process. Techniques for proving copying have included placing physical identifiers, such as microscopic logos, text, and even holograms in or on a die. Such mechanisms do not provide ready identification from electronic means. Techniques for securing electronic systems typically use non-volatile storage for storing security keys and the like for use in validating that a proper device or subsystem is authentic. However, such techniques require additional circuitry that is subject to electronic intrusion techniques that once effective, can provide for duplication of the security keys.
While perceived as a problem for reliable manufacturing, process variation can be exploited in various ways for the identification of individual devices. Existing device identification strategies have used power-up values of SRAM cells to perform device identification, and developments in the area have typically focused on coping with the unreliability of using the initial power-up state of SRAM cells as a device identification tool. In particular, when collecting state data after successive power-cycles, some of the cells of a SRAM array assume the same value after every power-cycle, while others do not. Cells with a reliable power-up value are considered stable cells and those without a reliable power-up value are considered unstable cells. Existing identification methods take the supposedly probabilistic behavior of the SRAM cell power-up state into account, typically by performing multiple power-up state evaluations to determine the expected power-up values according to the law of large numbers. In some techniques, SRAM power-up values are used for random number generation.
A SRAM fingerprint is a bit string that may be determined from multiple power-cycle SRAM state evaluations. During each evaluation, each SRAM cell assumes a power-up state value, either 0 or 1. Table I illustrates the process of determining an SRAM fingerprint for an SRAM with 6 bits in positions [b0:b5] based on 8 power-up state evaluations. In the example illustrated by Table I, Bits 1, 3, and 4 are stable in that their power-up value is the same for each evaluation. In contrast, bits 0, 2, and 5 are unstable because they assume different power-up values. A simple and typical choice for generating an SRAM fingerprint is to include the unique power-up values of the stable bits, and for the unstable bits to choose the power-up value that occurs in the majority of all experiments. If both values 0 and 1 occur equally often, either value may be used, and the value used in the fingerprint may be selected randomly. For example, value 1 may be chosen for the expected value of bit 5 in the SRAM fingerprint illustrated in Table I.
TABLE Ipower-uppower-up valuesexperiment01234510110102010011301101040110115111010601001170110108011011fingerprint011011
Once the SRAM fingerprint is obtained, for example during manufacturing testing of a device, the fingerprint can be later used in challenges that validate the unique identity of the device, by performing field evaluations that typically repeat the power-up state evaluations to match an expected fingerprint with the states assumed by an SRAM device after multiple power cycles. However, the nature of the probabilistic models assumed in the existing techniques limits the reliability of such identification/validation techniques, which can require large amounts of data and still be subject to error.
Therefore, it would be desirable to provide a method, system and computer program product for generating a reliable fingerprint from a device having static storage cells from power-up state evaluations. It would further be desirable to provide a reliable matching criteria that provides a high level of validation confidence in identifying whether or not a particular device matches a given fingerprint.